/**
 *
 * 功能：
 * 1:根据指定的TileSize(拼块地图的大小)，map_vertex[][]=高度信息,
 * 2:根据(x,z)得到y
 * 保存每个三角面Ax+By+Cz+D=0的公式，其实保存的是由x，z求出y的所需的信息
 * 根据任意大小的map[][]生成一张地图
 * 为了简便起见，先把把每个地图小快当成方格处理，从网上看到的魔兽3的3D地图也是拼块
 * 
 * ---注意这个有bug暂时不要处理~
 */
package kgame5.k3d.util3d {

//import flash.display.BitmapData;import kgame5.k3d.core.obj3d.model3d.Mesh3D;import kgame5.k3d.core.obj3d.model3d.Model3D;import kgame5.k3d.core.obj3d.visu.MeshVisu;import kgame5.k3d.core.obj3d.visu.Visu;import kgame5.k3d.util3d.*;import kgame5.kutil.*;

public class WaterFace {

//  private var CellSize:Number;
//  private var 
//  	RC:int, 
//  	CC:int;
//  private var md:Model3D;
// private var aVB_p:Vector.<Number>;
//  
//  public function WaterFace(RC:int, CC:int, CellSize:Number) {
//   
//    this.CellSize = CellSize;
//    this.RC = RC;
//    this.CC = CC;
// 	
//
//    m = Util.NewArray2_Obj(RC,CC);
//    m1 =Util.NewArray2_Obj(RC,CC);
//    
//	createModel(RC,CC,CellSize);
//  }
//
//  public function getModel():Model3D{
//  	trace("getModel"+md==null);
//  	return md;
//  }
//
//  //=====================更新状态
//
//	var A:Number = 0.4;
//	var B:Number = 2 - 4 * 0.4;
//	var D:Number=0.9;//衰减
//	
//	var  m :Array= null; //new int[RC][CC];
//	var m1:Array = null; //new int[RC][CC];
// 
//  public function  update(isDownFire:Boolean) {
//
//    if (isDownFire) {
//    	T.p(" 按了");
//      //for (var i:int = 0; i < 10; i++) {
//      // m1[i][i]=MathDG.random(1,40);
//      //}
//     m1[16][16] = MathDG.random(10,20) * 5;
//      //aVB_p[15*3+1]=100;
//    }
//
//    for (var r:int = 0; r < RC; r++) {
//      for (var c:int =0 ; c < CC; c++) {
//      	if(r-1<0||r+1>RC-1||c-1<0||c+1>CC-1){
//      		m1[r][c]=0;
//      		continue;
//      	}
//      	
//         m1[r][c] = (A * (m[r - 1][c] + m[r + 1][c] + m[r][c - 1] + m[r][c + 1]) 
//          				+B * m[r][c] - m1[r][c])*0.9;
//         
//        aVB_p[(r*CC+c)*3+1] =m1[r][c]; //y
//      }
//    }
//
// 	//交换数组
//	var temp:Array=m1.concat();
//	m1=m;
//	m=temp;
//	
//	md.forceRefresh();//必须强制刷新
//  }
//
//  //=====================制作模型===========================
//
//	//RC,CC是边的数量
//	private function createModel(RC:int,CC:int,CellSize:int){
//		//Step1:设置顶点缓冲
//		aVB_p=new Vector.<Number>();
//		
//		var r:int=0;
//		var c:int=0;
//		
//		for( r=0;r<RC;r++){
//			var z:Number=-r*CellSize;
//			for(c=0;c<CC;c++){
//				var x:Number=c*CellSize;
//	
//				aVB_p.push(x);
//				aVB_p.push(0);//y
//				aVB_p.push(z);
//			}
//		}
//		
//		//Step3:构造三角条带
//		//a1,a2
//		//a3,a4
//		var a2IB:Array=new Array();
//		for(r=0;r<RC-1;r++){
//			
//			var startIdx:int=r*CC;
//			
//			for(c=0;c<CC-1;c++){
//				var a1:int=startIdx+c;
//				var a2:int=startIdx+c+1;
//				var a3:int=startIdx+c+CC;
//				var a4:int=startIdx+c+CC+1;
//				
//				var aIB:Array=new Array();
//				aIB.push(a1);
//				aIB.push(a3);
//				aIB.push(a4);
//				a2IB.push(aIB);
//				
//				var aIB_:Array=new Array();
//				aIB_.push(a1);
//				aIB_.push(a4);
//				aIB_.push(a2);
//				a2IB.push(aIB_);
//			}
//		}
//		
//		//颜色
//		var aStripColor:Array=new Array();
//		var len:int=a2IB.length;
//		for(var i:int=0;i<len;i++){
//			var scaleColor:int=MathDG.ScaleColor(0x00ff00,i/len);
//			aStripColor.push(scaleColor);
//		}
//
//		//--
//		var visu:Visu=new MeshVisu(aVB_p,a2IB,-1,aStripColor,null,null,true);
//		//visu.LightLength=600;
//		md=new Mesh3D(visu,false);
//	}
/////////////////////////////
} // end of Class
 }